home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-02-22 | 35.0 KB | 1,307 lines |
- Newsgroups: comp.sources.x
- Path: uunet!think.com!mips!msi!dcmartin
- From: sdo@soliado.East.Sun.COM (Scott Oaks - Sun Consulting NYC)
- Subject: v16i091: olvwm 3.0, Patch1, Part01/01
- Message-ID: <1992Feb22.182731.4455@msi.com>
- Originator: dcmartin@fascet
- Sender: dcmartin@msi.com (David C. Martin - Moderator)
- Organization: Molecular Simulations, Inc.
- References: <csx-16i091-olvwm-3.0@uunet.UU.NET>
- Date: Sat, 22 Feb 1992 18:27:31 GMT
- Approved: dcmartin@msi.com
-
- Submitted-by: sdo@soliado.East.Sun.COM (Scott Oaks - Sun Consulting NYC)
- Posting-number: Volume 16, Issue 91
- Archive-name: olvwm-3.0/patch1
- Patch-To: olvwm-3.0: Volume 15, Issue 147
-
-
- Prereq: 0
- *** BUILD/patchlevel.h Fri Jan 3 18:50:59 1992
- --- src/patchlevel.h Mon Jan 27 19:35:11 1992
- ***************
- *** 1 ****
- ! #define PATCHLEVELv3 0
- --- 1 ----
- ! #define PATCHLEVELv3 1
- *** BUILD/CHANGES Fri Jan 3 18:50:56 1992
- --- src/CHANGES Mon Jan 27 19:35:08 1992
- ***************
- *** 1,3 ****
- --- 1,39 ----
- + Version 3.1 fixes:
- + 1) Windows/popups/icons should all stay on the same screen better
- +
- + 2) New Resource (PointerWorkspace) to prevent setting the pointer on
- + the root window and frames so that an alternate pointer can be
- + set (functions like PaintWorkspace)
- +
- + 3) New Resource (SaveWorkspaceCmd) to specify an alternate to owplaces
- + when SAVE_WORKSPACE is selected
- +
- + 4) If you pin the Root Menu automatically, you can no longer pin up
- + a second copy.
- +
- + 5) Moving selected non-sticky clients into the VDM now works
- +
- + 6) The Warp action now effects all screens olvwm is managing
- +
- + 7) The GoTo command on the second screen now works
- +
- + 8) Help is now a valid key identifier in .olvwmrc
- +
- + 9) Menus without defaults no longer display the circle around the first
- + entry
- +
- + 10) Goto calculation now works (as advertised) by columns instead of rows
- +
- + 11) multi-depth icon pixmaps now work
- +
- + 12) JumpUpLeft/JumpDownLeft keybinds fixed
- +
- + 13) Debugging code for window types fixed
- +
- + 14) New Makefile variable VERSION to determine if version.o is included
- +
- + 15) No longer need math library to compile
- +
- olvwm 3.0 notes:
-
- INCOMPATIBILITIES WITH VERSION 2:
- *** BUILD/Debug.c Fri Jan 3 18:50:56 1992
- --- src/Debug.c Mon Jan 27 19:38:24 1992
- ***************
- *** 4,10 ****
- --- 4,16 ----
- * file for terms of the license.
- */
-
- + #ident "@(#)Debug.c 1.2 olvwm version 1/27/92"
- +
- + /*
- + * Based on
- #ident "@(#)Debug.c 26.5 91/09/14 SMI"
- + *
- + */
-
- #include <errno.h>
- #include <stdio.h>
- ***************
- *** 72,80 ****
- --- 78,88 ----
- "IconPane",
- "Colormap",
- "Menu",
- + "PinMenu",
- "NoFocus",
- "Root",
- "Busy",
- + "Virtual",
- };
-
- DebugWindow(win)
- *** BUILD/Imakefile Fri Jan 3 18:50:56 1992
- --- src/Imakefile Mon Jan 27 19:35:08 1992
- ***************
- *** 10,17 ****
- /**/# window operations), defind NeedOlwmManPage to YES
- #define NeedOlwmManPage NO
-
- ! #undef DestDir
- ! #define DestDir /auto/openwin
-
- /**/# No more changes needed
-
- --- 10,18 ----
- /**/# window operations), defind NeedOlwmManPage to YES
- #define NeedOlwmManPage NO
-
- ! /**/# If you don't want the compile date included in the executable, comment
- ! /**/# out this line
- ! VERSION = version.o
-
- /**/# No more changes needed
-
- ***************
- *** 23,29 ****
-
- DEFINES = -DOW_I18N_L3 -DSUNDAE -DSHAPE
- INCLUDES = -I$(HEADER_DEST) -I$(TOP)
- ! SYS_LIBRARIES = -ll -lm
- DEPLIBS =
- LOCAL_LIBRARIES = $(OLGXLIB) $(XLIB)
-
- --- 24,30 ----
-
- DEFINES = -DOW_I18N_L3 -DSUNDAE -DSHAPE
- INCLUDES = -I$(HEADER_DEST) -I$(TOP)
- ! SYS_LIBRARIES = -ll
- DEPLIBS =
- LOCAL_LIBRARIES = $(OLGXLIB) $(XLIB)
-
- ***************
- *** 61,71 ****
- events.o gettext.o group.o helpsend.o images.o kbdfuncs.o \
- list.o mem.o menu.o moveresize.o ol_button.o olwm.o olvwmrc.o \
- properties.o resources.o screen.o services.o slave.o slots.o \
- ! st.o states.o usermenu.o usleep.o version.o virtual.o win.o \
- winbusy.o winbutton.o wincolor.o winframe.o wingframe.o \
- winicon.o winipane.o winmenu.o winnofoc.o \
- winpane.o winpinmenu.o winpush.o winresize.o \
- ! winroot.o
-
-
- ALLFILES = \
- --- 62,72 ----
- events.o gettext.o group.o helpsend.o images.o kbdfuncs.o \
- list.o mem.o menu.o moveresize.o ol_button.o olwm.o olvwmrc.o \
- properties.o resources.o screen.o services.o slave.o slots.o \
- ! st.o states.o usermenu.o usleep.o virtual.o win.o \
- winbusy.o winbutton.o wincolor.o winframe.o wingframe.o \
- winicon.o winipane.o winmenu.o winnofoc.o \
- winpane.o winpinmenu.o winpush.o winresize.o \
- ! winroot.o ${VERSION}
-
-
- ALLFILES = \
- ***************
- *** 88,94 ****
- olvwmrc.o: parse.c olvwmrc.c
-
- version.c:: ${SRCS} ${HEADERS}
- ! @echo -n "#ident \"@(#)olvwm version compiled " > version.c
- @/bin/sh -c 'echo `date` \"' >> version.c
-
- clean::
- --- 89,95 ----
- olvwmrc.o: parse.c olvwmrc.c
-
- version.c:: ${SRCS} ${HEADERS}
- ! @/bin/sh -c 'echo -n "#ident \"@(#)olvwm version compiled "' > version.c
- @/bin/sh -c 'echo `date` \"' >> version.c
-
- clean::
- *** BUILD/Makefile.sunpro Sat Jan 4 11:30:02 1992
- --- src/Makefile.sunpro Mon Jan 27 19:35:08 1992
- ***************
- *** 26,31 ****
- --- 26,35 ----
- # Set this to the debugging options you'd like
- DEBUG = -O
-
- + # If you don't want the version string in the executable, comment out this
- + # line
- + VERSION = version.o
- +
- #
- # You shouldn't need to change anything below this line
-
- ***************
- *** 51,63 ****
- LDFLAGS = -L${OPENWINHOME}/lib
- LIBS = ${LDFLAGS} -lolgx -lX11 -lXext -ll
-
- ! OBJS = ${SRCS:.c=.o} version.o
-
- olvwm : ${OBJS}
- cc -o olvwm ${OBJS} ${LIBS}
-
- version.c : ${SRCS} ${HEADERS}
- ! @echo -n "#ident \"@(#)olvwm version compiled " > version.c
- @/bin/sh -c 'echo `date` \"' >> version.c
-
- parse.c : parse.l
- --- 55,67 ----
- LDFLAGS = -L${OPENWINHOME}/lib
- LIBS = ${LDFLAGS} -lolgx -lX11 -lXext -ll
-
- ! OBJS = ${SRCS:.c=.o} ${VERSION}
-
- olvwm : ${OBJS}
- cc -o olvwm ${OBJS} ${LIBS}
-
- version.c : ${SRCS} ${HEADERS}
- ! @/bin/sh -c 'echo -n "#ident \"@(#)olvwm version compiled "' > version.c
- @/bin/sh -c 'echo `date` \"' >> version.c
-
- parse.c : parse.l
- *** BUILD/globals.h Fri Jan 3 18:50:57 1992
- --- src/globals.h Mon Jan 27 19:35:09 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)globals.h 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)globals.h 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 160,165 ****
- --- 160,167 ----
- char *ResizePosition;
- ImageType UseImageMenu;
- Bool VirtualMoveGroups;
- + Bool PointerWorkspace;
- + char *SaveWorkspaceCmd;
- } GlobalResourceVariables;
-
- extern GlobalResourceVariables GRV;
- *** BUILD/menu.c Fri Jan 3 18:50:58 1992
- --- src/menu.c Mon Jan 27 19:35:09 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)menu.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)menu.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 106,112 ****
-
- static void (*syncFunc) ();
- static void *syncInfo;
- ! static MenuInfo *findMenuInfo();
- void MenuInfoDestroy();
- static ButtonInfo *buttonInfoCreate();
- static void showMenu();
- --- 106,112 ----
-
- static void (*syncFunc) ();
- static void *syncInfo;
- ! MenuInfo *FindMenuInfo();
- void MenuInfoDestroy();
- static ButtonInfo *buttonInfoCreate();
- static void showMenu();
- ***************
- *** 392,398 ****
- /* this button has a submenu */
- menu = menu->buttons[btn]->action.submenu;
- btn = menu->buttonDefault;
- ! menuInfo = findMenuInfo(winInfo, menu);
- } else {
- /* this is a leaf button */
- break;
- --- 392,398 ----
- /* this button has a submenu */
- menu = menu->buttons[btn]->action.submenu;
- btn = menu->buttonDefault;
- ! menuInfo = FindMenuInfo(winInfo, menu);
- } else {
- /* this is a leaf button */
- break;
- ***************
- *** 405,411 ****
-
- /* if not the same menu then find its corresponding menuinfo */
- if (menuInfo->menu != menu) {
- ! if ((menuInfo = findMenuInfo(winInfo, menu)) == NULL)
- return;
- }
- if (BUTTON_INDEX_OK(menuInfo, btn))
- --- 405,411 ----
-
- /* if not the same menu then find its corresponding menuinfo */
- if (menuInfo->menu != menu) {
- ! if ((menuInfo = FindMenuInfo(winInfo, menu)) == NULL)
- return;
- }
- if (BUTTON_INDEX_OK(menuInfo, btn))
- ***************
- *** 719,725 ****
- recalcCachedMenu(winInfo, menu);
- }
-
- ! menuInfo = findMenuInfo(winInfo, menu);
-
- if (menuInfo == NULL)
- return;
- --- 719,725 ----
- recalcCachedMenu(winInfo, menu);
- }
-
- ! menuInfo = FindMenuInfo(winInfo, menu);
-
- if (menuInfo == NULL)
- return;
- ***************
- *** 1021,1030 ****
- }
-
- /*
- ! * findMenuInfo
- */
- ! static MenuInfo *
- ! findMenuInfo(winInfo, menu)
- WinGeneric *winInfo;
- Menu *menu;
- {
- --- 1021,1030 ----
- }
-
- /*
- ! * FindMenuInfo
- */
- ! MenuInfo *
- ! FindMenuInfo(winInfo, menu)
- WinGeneric *winInfo;
- Menu *menu;
- {
- ***************
- *** 3220,3226 ****
- pb = menu->buttons[defitem];
-
- if (pb->enabled) {
- ! MenuInfo *menuInfo = findMenuInfo(win, menu);
- assert(menuInfo);
- (*pb->action.callback) (win->core.client->dpy, win, menuInfo, defitem);
- }
- --- 3220,3226 ----
- pb = menu->buttons[defitem];
-
- if (pb->enabled) {
- ! MenuInfo *menuInfo = FindMenuInfo(win, menu);
- assert(menuInfo);
- (*pb->action.callback) (win->core.client->dpy, win, menuInfo, defitem);
- }
- *** BUILD/moveresize.c Fri Jan 3 18:50:58 1992
- --- src/moveresize.c Mon Jan 27 19:35:10 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)moveresize.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)moveresize.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 305,311 ****
- return NULL;
- }
- new = XCreateRegion();
- ! XUnionRectWithRegion(rect, new, new);
- XSubtractRegion(mstuff->region, new, mstuff->region);
- XDestroyRegion(new);
- return NULL;
- --- 305,311 ----
- return NULL;
- }
- new = XCreateRegion();
- ! XUnionRectWithRegion(&rect, new, new);
- XSubtractRegion(mstuff->region, new, mstuff->region);
- XDestroyRegion(new);
- return NULL;
- ***************
- *** 426,432 ****
- if (mstuff.dragwin) {
- mstuff.region = XCreateRegion();
- /* rect is set up above */
- ! XUnionRectWithRegion(rect, mstuff.region, mstuff.region);
- if (!XQueryTree(dpy, WinRootID(mstuff.frame), &dummy, &dummy,
- &mstuff.children, &mstuff.num_children))
- mstuff.num_children = 0;
- --- 426,432 ----
- if (mstuff.dragwin) {
- mstuff.region = XCreateRegion();
- /* rect is set up above */
- ! XUnionRectWithRegion(&rect, mstuff.region, mstuff.region);
- if (!XQueryTree(dpy, WinRootID(mstuff.frame), &dummy, &dummy,
- &mstuff.children, &mstuff.num_children))
- mstuff.num_children = 0;
- ***************
- *** 454,463 ****
- winlist = ListCons(c->framewin, winlist);
- /*
- * Can't move sticky windows into the VDM. Thus, if all windows
- ! * is sticky, we don't allow any move into the VDM, since otherwise
- * its too confusing
- */
- ! allsticky = allsticky & !c->sticky;
- }
- if (allsticky)
- mstuff.check_vdm = False;
- --- 454,463 ----
- winlist = ListCons(c->framewin, winlist);
- /*
- * Can't move sticky windows into the VDM. Thus, if all windows
- ! * are sticky, we don't allow any move into the VDM, since otherwise
- * its too confusing
- */
- ! allsticky = allsticky & c->sticky;
- }
- if (allsticky)
- mstuff.check_vdm = False;
- ***************
- *** 905,913 ****
- */
- dw = DisplayWidth(win->core.client->dpy, win->core.client->screen);
- dh = DisplayHeight(win->core.client->dpy, win->core.client->screen);
- ! offX = mstuff->targetScreenX * dw + mstuff->vdm->offsetX;
- ! offY = mstuff->targetScreenY * dh + mstuff->vdm->offsetY;
- ! GFrameSetConfig(win, (win->core.x % dw) + offX, (win->core.y % dh) + offY,
- win->core.width, win->core.height);
- }
- if (GRV.VirtualRaiseOnMove)
- --- 905,913 ----
- */
- dw = DisplayWidth(win->core.client->dpy, win->core.client->screen);
- dh = DisplayHeight(win->core.client->dpy, win->core.client->screen);
- ! offX = mstuff->targetScreenX * dw;
- ! offY = mstuff->targetScreenY * dh;
- ! GFrameSetConfig(win, win->core.x + offX, win->core.y + offY,
- win->core.width, win->core.height);
- }
- if (GRV.VirtualRaiseOnMove)
- ***************
- *** 962,977 ****
- return (void *) 0;
- }
- curScreenX = (win->core.x - mstuff->vdm->offsetX) / dw;
- ! if (offX < 0)
- ! newScreenX = (win->core.x + offX + mstuff->vdm->offsetX) / dw;
- ! else newScreenX = (win->core.x + offX - mstuff->vdm->offsetX) / dw;
- ! mstuff->targetScreenX = newScreenX;
- curScreenY = (win->core.y - mstuff->vdm->offsetY) / dh;
- ! if (offY < 0)
- ! newScreenY = (win->core.y + offY + mstuff->vdm->offsetY) / dh;
- ! else newScreenY = (win->core.y + offY - mstuff->vdm->offsetY) / dh;
- ! mstuff->targetScreenY = newScreenY;- curScreenY;
- ! if (curScreenX - newScreenX == 0 && curScreenY - newScreenY == 0)
- doConfigOneWindow(win, mstuff);
- else GroupApply(leader->groupid, configOneClient, mstuff,
- GROUP_LEADER | GROUP_DEPENDENT);
- --- 962,973 ----
- return (void *) 0;
- }
- curScreenX = (win->core.x - mstuff->vdm->offsetX) / dw;
- ! newScreenX = (win->core.x + offX - mstuff->vdm->offsetX) / dw;
- ! mstuff->targetScreenX = newScreenX - curScreenX;
- curScreenY = (win->core.y - mstuff->vdm->offsetY) / dh;
- ! newScreenY = (win->core.y + offY - mstuff->vdm->offsetY) / dh;
- ! mstuff->targetScreenY = newScreenY - curScreenY;
- ! if (mstuff->targetScreenY == 0 && mstuff->targetScreenX == 0)
- doConfigOneWindow(win, mstuff);
- else GroupApply(leader->groupid, configOneClient, mstuff,
- GROUP_LEADER | GROUP_DEPENDENT);
- ***************
- *** 1719,1725 ****
- rstuff.statuswindow = NULL;
-
- if (trigger == NULL || trigger->type == KeyPress) {
- ! resizeDraw(rstuff);
- rstuff.drawn = True;
- }
-
- --- 1715,1721 ----
- rstuff.statuswindow = NULL;
-
- if (trigger == NULL || trigger->type == KeyPress) {
- ! resizeDraw(&rstuff);
- rstuff.drawn = True;
- }
-
- *** BUILD/olvwm.man Fri Jan 3 18:50:59 1992
- --- src/olvwm.man Mon Jan 27 19:35:10 1992
- ***************
- *** 1,4 ****
- ! .\" @(#)olvwm.man 1.1 olvwm version 1/3/92
- .TH OLVWM 1 "15 November 1991"
- .SH NAME
- olvwm \- OPEN LOOK virtual window manager for OpenWindows
- --- 1,4 ----
- ! .\" @(#)olvwm.man 1.2 olvwm version 1/27/92
- .TH OLVWM 1 "15 November 1991"
- .SH NAME
- olvwm \- OPEN LOOK virtual window manager for OpenWindows
- ***************
- *** 453,458 ****
- --- 453,473 ----
- .I
- Default value: UseVDM
- .P
- + .TP
- + .BI PointerWorkspace " (Boolean)"
- + If set to True, olvwm will not change the pointer when it is over a window
- + frame. This is useful in conjunction with xsetroot -cursor if you want
- + the specified cursor to be active over frames.
- + .I
- + Default value: False
- + .P
- + .TP
- + .BI SaveWorkspaceCmd " (String)"
- + If set, this is the command that will be run when the SAVE_WORKSPACE command
- + is selected off the main menu. Otherwise, the default command is run.
- + .I
- + Default value: owplaces -silent -multi -script -tw -output $HOME/.openwin-init
- + .P
- .\" ========================================================================
- .SH ADDITIONAL MISCELLANEOUS RESOURCES
- .LP
- ***************
- *** 672,678 ****
- UpRight \fI(R9)\fP
- Move the view NorthEast one screen.
- .TP
- ! JumpUpRight \fI(R9+Ctrl)\fP +
- Move the view NorthEast ten screens.
- .TP
- HalfUpRight \fI(R9+Shift)\fP
- --- 687,693 ----
- UpRight \fI(R9)\fP
- Move the view NorthEast one screen.
- .TP
- ! JumpUpRight \fI(R9+Ctrl)\fP
- Move the view NorthEast ten screens.
- .TP
- HalfUpRight \fI(R9+Shift)\fP
- ***************
- *** 691,697 ****
- DownRight \fI(R15, PgDn)\fP
- Move the view SouthEast one screen.
- .TP
- ! JumpDownRight \fI(R15+Ctrl)\fP +
- Move the view SouthEast ten screens.
- .TP
- HalfDownRight \fI(R15+Shift)\fP
- --- 706,712 ----
- DownRight \fI(R15, PgDn)\fP
- Move the view SouthEast one screen.
- .TP
- ! JumpDownRight \fI(R15+Ctrl)\fP
- Move the view SouthEast ten screens.
- .TP
- HalfDownRight \fI(R15+Shift)\fP
- ***************
- *** 831,837 ****
- Addition fixes and enhancements have been provided by Rich Berlin,
- David Chase and David Plotkin at Sun, Ken West at Protocol Systems,
- Russel Kegley at General Dynamics, Chuck Musciano at Harris Systems,
- ! Alexander Dupuy at Columbia, David Boyd at Sterling Software and Duane
- ! Gibson at Unify.
- In addition, several people from the net are not mentioned here but
- contributed duplicate fixes.
- --- 846,852 ----
- Addition fixes and enhancements have been provided by Rich Berlin,
- David Chase and David Plotkin at Sun, Ken West at Protocol Systems,
- Russel Kegley at General Dynamics, Chuck Musciano at Harris Systems,
- ! Alexander Dupuy at Columbia, David Boyd at Sterling Software, Duane
- ! Gibson at Unify, Eric Fifer at Salomon, Andreas Stolcke, and Paul Eggert.
- In addition, several people from the net are not mentioned here but
- contributed duplicate fixes.
- *** BUILD/olvwmrc.y Fri Jan 3 18:50:59 1992
- --- src/olvwmrc.y Mon Jan 27 19:35:11 1992
- ***************
- *** 4,10 ****
- */
-
- %{
- ! #ident "@(#)olvwmrc.y 1.1 olvwm version 1/3/92"
-
- #include <stdio.h>
- #include <string.h>
- --- 4,10 ----
- */
-
- %{
- ! #ident "@(#)olvwmrc.y 1.2 olvwm version 1/27/92"
-
- #include <stdio.h>
- #include <string.h>
- ***************
- *** 392,402 ****
- --- 392,406 ----
- return NULL;
- }
-
- + static int findClient_rootid;
- +
- static Client *
- findClient(c, s)
- Client *c;
- char *s;
- {
- + if (findClient_rootid && findClient_rootid != c->scrInfo->rootid)
- + return NULL;
- if (c->framewin && c->framewin->fcore.name)
- if (!strncmp(c->framewin->fcore.name, s, strlen(s)))
- return c;
- ***************
- *** 410,415 ****
- --- 414,420 ----
- }
-
- static int applyIsKey = False;
- + static void clientWarp();
-
- static int
- applyAction(p, cli)
- ***************
- *** 420,426 ****
- Client *c;
- char *s, *t;
- List *l;
- - int rootX, rootY, root, child, winX, winY, keys;
-
- switch(p->action) {
- case Warp:
- --- 425,430 ----
- ***************
- *** 431,460 ****
- */
- s = strdup(p->parameter);
- t = LookupToken(s, ",");
- ! if (strcmp(t, OLVWM_USE_SELECTION))
- ! c = (Client *) ListApply(ActiveClientList, findClient, t);
- ! else c = cli;
- ! free(s);
- ! if (c) {
- ! VDMMoveTo(dpy, c, c->framewin->core.x, c->framewin->core.y);
- ! /*
- ! * If we got here via a key, move the mouse to the window and
- ! * give it focus
- ! */
- ! if (applyIsKey) {
- ! if (!XQueryPointer(dpy, PANEWINOFCLIENT(c),
- ! &root, &child, &rootX, &rootY, &winX, &winY,
- ! &keys))
- ! break;
- ! XWarpPointer(dpy, None, None, 0, 0, 0, 0,
- ! c->framewin->core.x - rootX +
- ! c->framewin->core.width / 2,
- ! c->framewin->core.y - rootY +
- ! c->framewin->core.height / 2);
- }
- ! if (!GRV.FocusFollowsMouse)
- ! ClientSetFocus(c, True, CurrentTime);
- ! }
- break;
-
- case Open:
- --- 435,459 ----
- */
- s = strdup(p->parameter);
- t = LookupToken(s, ",");
- ! if (!strcmp(t, OLVWM_USE_SELECTION)) {
- ! if (cli)
- ! clientWarp(cli);
- }
- ! else {
- ! extern List *ScreenInfoList;
- ! List *l = ScreenInfoList;
- ! ScreenInfo *scr;
- !
- ! /* allow one warp per screen */
- ! for (scr = ListEnum(&l); scr != NULL; scr = ListEnum(&l)) {
- ! findClient_rootid = scr->rootid;
- ! c = (Client *) ListApply(ActiveClientList, findClient, t);
- ! if (c)
- ! clientWarp(c);
- ! }
- ! findClient_rootid = 0;
- ! }
- ! free(s);
- break;
-
- case Open:
- ***************
- *** 542,547 ****
- --- 541,573 ----
- return False;
- }
-
- + static void
- + clientWarp(c)
- + Client *c;
- +
- + {
- + int rootX, rootY, root, child, winX, winY, keys;
- +
- + VDMMoveTo(dpy, c, c->framewin->core.x, c->framewin->core.y);
- + /*
- + * If we got here via a key, move the mouse to the window and
- + * give it focus
- + */
- + if (applyIsKey) {
- + if (!XQueryPointer(dpy, PANEWINOFCLIENT(c),
- + &root, &child, &rootX, &rootY, &winX, &winY,
- + &keys))
- + return;
- + XWarpPointer(dpy, None, None, 0, 0, 0, 0,
- + c->framewin->core.x - rootX +
- + c->framewin->core.width / 2,
- + c->framewin->core.y - rootY +
- + c->framewin->core.height / 2);
- + }
- + if (!GRV.FocusFollowsMouse)
- + ClientSetFocus(c, True, CurrentTime);
- + }
- +
- InitOlvwmRC(ldpy)
- Display *ldpy;
-
- ***************
- *** 659,667 ****
- return False;
- if (ev->xkey.type != KeyPress)
- return False;
- ! win = (WinGeneric *) WIGetInfo(ev->xkey.window);
- if (!win)
- ! win = (WinGeneric *) VGetInfo(ev->xkey.window);
- if (!win)
- ErrorWarning(gettext("Unexpected window keyboard event"));
- else {
- --- 685,693 ----
- return False;
- if (ev->xkey.type != KeyPress)
- return False;
- ! win = (WinGeneric *) WIGetInfo(ev->xkey.root);
- if (!win)
- ! win = (WinGeneric *) VGetInfo(ev->xkey.root);
- if (!win)
- ErrorWarning(gettext("Unexpected window keyboard event"));
- else {
- *** BUILD/parse.l Fri Jan 3 18:50:59 1992
- --- src/parse.l Mon Jan 27 19:35:11 1992
- ***************
- *** 4,10 ****
- * See LEGAL_NOTICE file for terms of the license.
- */
-
- ! #ident "@(#)parse.l 1.1 olvwm version 1/3/92"
- %}
- %%
-
- --- 4,10 ----
- * See LEGAL_NOTICE file for terms of the license.
- */
-
- ! #ident "@(#)parse.l 1.2 olvwm version 1/27/92"
- %}
- %%
-
- ***************
- *** 31,36 ****
- --- 31,37 ----
- WINMENU { yylval.ival = WINMENU; return WINMENU; }
- "+" { yylval.ival = PLUS; return PLUS; }
-
- + Help { yylval.sval = yytext; return KEY; }
- [LRF][0-9]+ { yylval.sval = yytext; return KEY; }
-
- [0-9]+ { yylval.ival = atoi(yytext); return INT; }
- *** BUILD/resources.c Fri Jan 3 18:50:59 1992
- --- src/resources.c Mon Jan 27 19:40:41 1992
- ***************
- *** 4,10 ****
- --- 4,16 ----
- * file for terms of the license.
- */
-
- + #ident "@(#)resources.c 1.2 olvwm version 1/27/92"
- +
- + /*
- + *
- #ident "@(#)resources.c 26.45 91/10/04 SMI"
- + *
- + */
-
- #ifdef SYSV
- #include <sys/types.h>
- ***************
- *** 375,380 ****
- --- 381,390 ----
- &(GRV.UseImageMenu), cvtImageType, NULL },
- { "virtualMoveGroup", "VirtualMoveGroup", "True",
- &(GRV.VirtualMoveGroups), cvtBoolean, NULL },
- + { "pointerWorkspace", "PointerWorkspace", "False",
- + &(GRV.PointerWorkspace), cvtBoolean, NULL },
- + { "saveWorkspaceCmd", "SaveWorkspaceCmd", NULL,
- + &(GRV.SaveWorkspaceCmd), cvtString, NULL },
- };
-
- #define NRESOURCEITEMS (sizeof(ResourceTable)/sizeof(ResourceItem))
- *** BUILD/screen.c Fri Jan 3 18:50:59 1992
- --- src/screen.c Mon Jan 27 19:35:13 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)screen.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)screen.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 2178,2184 ****
- /*
- * Set the cursor for that screen's root window
- */
- ! XDefineCursor(dpy,scrInfo->rootid,GRV.BasicPointer);
-
- /*
- * Create VDM for screen
- --- 2178,2185 ----
- /*
- * Set the cursor for that screen's root window
- */
- ! if (!GRV.PointerWorkspace)
- ! XDefineCursor(dpy,scrInfo->rootid,GRV.BasicPointer);
-
- /*
- * Create VDM for screen
- ***************
- *** 2601,2609 ****
- MenuInfo *info;
- WinPinMenu *win;
- XEvent ev;
-
- ! info = MenuInfoCreate(si->menuCache, si->rootwin,
- ! si->menuTable[MENU_ROOT], 1);
- info->menuX = GRV.AutoRootMenuX;
- info->menuY = GRV.AutoRootMenuY;
- win = MakePinMenu(dpy, si->rootwin, info);
- --- 2602,2612 ----
- MenuInfo *info;
- WinPinMenu *win;
- XEvent ev;
- + extern MenuInfo *FindMenuInfo();
-
- ! info = FindMenuInfo(si->rootwin, si->menuTable[MENU_ROOT]);
- ! if (!info)
- ! return;
- info->menuX = GRV.AutoRootMenuX;
- info->menuY = GRV.AutoRootMenuY;
- win = MakePinMenu(dpy, si->rootwin, info);
- *** BUILD/services.c Fri Jan 3 18:50:59 1992
- --- src/services.c Mon Jan 27 19:35:14 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)services.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)services.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 484,489 ****
- --- 484,491 ----
-
- /* having either grab fail isn't fatal; issue warnings only */
-
- + if (GRV.SaveWorkspaceCmd)
- + owplacesCmd = GRV.SaveWorkspaceCmd;
- VirtualSaveDesktops(dpy, 0, 0);
- if (XGrabPointer(dpy, NoFocusWin, False, ButtonPressMask,
- GrabModeAsync, GrabModeAsync, None,
- *** BUILD/slave.c Fri Jan 3 18:51:00 1992
- --- src/slave.c Mon Jan 27 19:35:14 1992
- ***************
- *** 7,13 ****
- --- 7,19 ----
- * slave.c
- * ---------------------------------------------------------------------*/
-
- + #ident "@(#)slave.c 1.2 olvwm version 1/27/92"
- +
- + /*
- + * Based on
- #ident "@(#)slave.c 26.8 91/09/14 SMI"
- + *
- + */
-
- #include <sys/types.h>
- #include <sys/time.h>
- ***************
- *** 33,38 ****
- --- 39,45 ----
- * Local Forward Declarations
- * ---------------------------------------------------------------------*/
- void SlaveFailure();
- + static int input[2],output[2];
-
- /* ----------------------------------------------------------------------
- * SlaveStart
- ***************
- *** 41,47 ****
- SlaveStart(argv)
- char **argv;
- {
- - int input[2],output[2];
- struct rlimit rlimit;
- int fd,maxfd;
-
- --- 48,53 ----
- ***************
- *** 108,113 ****
- --- 114,123 ----
- perror("kill");
- */
- }
- + (void)close(input[0]);
- + (void)close(input[1]);
- + (void)close(output[0]);
- + (void)close(output[1]);
- }
-
- /* ----------------------------------------------------------------------
- *** BUILD/states.c Fri Jan 3 18:51:00 1992
- --- src/states.c Mon Jan 27 19:35:14 1992
- ***************
- *** 7,13 ****
- * (Normal, Iconic, Withdrawn)
- */
-
- ! #ident "@(#)states.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 7,13 ----
- * (Normal, Iconic, Withdrawn)
- */
-
- ! #ident "@(#)states.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 880,892 ****
- curScreen = leader->framewin->core.x / dw;
- if (leader->framewin->core.x < 0)
- curScreen--;
- ! if (paneAttr.x < 0)
- paneAttr.x = dw + (paneAttr.x % dw) + (curScreen * dw);
- else paneAttr.x = (paneAttr.x % dw) + (curScreen * dw);
- curScreen = leader->framewin->core.y / dh;
- if (leader->framewin->core.y < 0)
- curScreen--;
- ! if (paneAttr.y < 0)
- paneAttr.y = dh + (paneAttr.y % dh) + (curScreen * dh);
- else paneAttr.y = (paneAttr.y % dh) + (curScreen * dh);
- }
- --- 880,892 ----
- curScreen = leader->framewin->core.x / dw;
- if (leader->framewin->core.x < 0)
- curScreen--;
- ! if (paneAttr.x + (int) paneAttr.width < 0)
- paneAttr.x = dw + (paneAttr.x % dw) + (curScreen * dw);
- else paneAttr.x = (paneAttr.x % dw) + (curScreen * dw);
- curScreen = leader->framewin->core.y / dh;
- if (leader->framewin->core.y < 0)
- curScreen--;
- ! if (paneAttr.y + (int) paneAttr.width < 0)
- paneAttr.y = dh + (paneAttr.y % dh) + (curScreen * dh);
- else paneAttr.y = (paneAttr.y % dh) + (curScreen * dh);
- }
- *** BUILD/usermenu.c Fri Jan 3 18:51:00 1992
- --- src/usermenu.c Mon Jan 27 19:35:15 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)usermenu.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)usermenu.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 1435,1441 ****
- }
-
- if (pmenu->idefault == NOBUTTON)
- ! SetMenuDefault(m, 0);
- else
- SetMenuDefault(m, pmenu->idefault);
-
- --- 1435,1441 ----
- }
-
- if (pmenu->idefault == NOBUTTON)
- ! SetMenuDefault(m, -1);
- else
- SetMenuDefault(m, pmenu->idefault);
-
- *** BUILD/virtual.c Fri Jan 3 18:51:00 1992
- --- src/virtual.c Mon Jan 27 19:41:46 1992
- ***************
- *** 28,33 ****
- --- 28,35 ----
- #include "vdm.icon"
- #include "vdm.mask"
-
- + #ident "@(#)virtual.c 1.2 olvwm version 1/27/92"
- +
- /* Class Function Vector; a virtual pane is the VDM window in which all
- * the little virtual windows appear (and to which said windows are
- * parented)
- ***************
- *** 72,77 ****
- --- 74,81 ----
- #define VDMSelectMask (ButtonPressMask | ButtonReleaseMask | \
- ButtonMotionMask | ExposureMask )
-
- + #define CEIL(a,b) (((a)+(b)-1)/(b))
- +
- /*
- * ==========================================================================
- *
- ***************
- *** 279,289 ****
- deltas.delta_y = -dh;
- break;
- case ACTION_JUMP_UPLEFT:
- deltas.delta_x = -dw * 20;
- deltas.delta_y = -dh * 20;
- break;
- case ACTION_HALF_UPLEFT:
- - case ACTION_DATA_START:
- deltas.delta_x = -dw * .5;
- deltas.delta_y = -dh * .5;
- break;
- --- 283,293 ----
- deltas.delta_y = -dh;
- break;
- case ACTION_JUMP_UPLEFT:
- + case ACTION_DATA_START:
- deltas.delta_x = -dw * 20;
- deltas.delta_y = -dh * 20;
- break;
- case ACTION_HALF_UPLEFT:
- deltas.delta_x = -dw * .5;
- deltas.delta_y = -dh * .5;
- break;
- ***************
- *** 309,319 ****
- deltas.delta_y = dh;
- break;
- case ACTION_JUMP_DOWNLEFT:
- deltas.delta_x = -dw * 20;
- deltas.delta_y = dh * 20;
- break;
- case ACTION_HALF_DOWNLEFT:
- - case ACTION_DATA_END:
- deltas.delta_x = -dw * .5;
- deltas.delta_y = dh * .5;
- break;
- --- 313,323 ----
- deltas.delta_y = dh;
- break;
- case ACTION_JUMP_DOWNLEFT:
- + case ACTION_DATA_END:
- deltas.delta_x = -dw * 20;
- deltas.delta_y = dh * 20;
- break;
- case ACTION_HALF_DOWNLEFT:
- deltas.delta_x = -dw * .5;
- deltas.delta_y = dh * .5;
- break;
- ***************
- *** 403,412 ****
- sscanf(v->resources->size, "%dx%d", &width, &height);
- if (width < dw)
- v->columns = width;
- ! else v->columns = ceil((double) width / dw);
- if (height < dh)
- v->rows = height;
- ! else v->rows = ceil((double) height / dh);
-
- v->absoluteWidth = v->columns * dw;
- v->absoluteHeight = v->rows * dh;
- --- 407,416 ----
- sscanf(v->resources->size, "%dx%d", &width, &height);
- if (width < dw)
- v->columns = width;
- ! else v->columns = CEIL(width, dw);
- if (height < dh)
- v->rows = height;
- ! else v->rows = CEIL(height, dh);
-
- v->absoluteWidth = v->columns * dw;
- v->absoluteHeight = v->rows * dh;
- ***************
- *** 653,666 ****
- vdm->absoluteHeight = ((vdm->absoluteHeight - 1) / dh + 1) * dh;
- vdm->absoluteWidth = (vdm->width - 3) * vdm->resources->scale;
- vdm->absoluteWidth = ((vdm->absoluteWidth - 1) / dw + 1) * dw;
- ! vdm->rows = ceil((double) vdm->absoluteHeight / dh);
- ! vdm->columns = ceil((double) vdm->absoluteWidth / dw);
- }
- else {
- vdm->absoluteHeight = vdm->height * vdm->resources->scale;
- vdm->absoluteWidth = vdm->width * vdm->resources->scale;
- ! vdm->rows = ceil((double) vdm->absoluteHeight / dh);
- ! vdm->columns = ceil((double) vdm->absoluteWidth / dw);
- }
- doit = False;
- deltas.delta_x = deltas.delta_y = 0;
- --- 657,670 ----
- vdm->absoluteHeight = ((vdm->absoluteHeight - 1) / dh + 1) * dh;
- vdm->absoluteWidth = (vdm->width - 3) * vdm->resources->scale;
- vdm->absoluteWidth = ((vdm->absoluteWidth - 1) / dw + 1) * dw;
- ! vdm->rows = CEIL(vdm->absoluteHeight, dh);
- ! vdm->columns = CEIL(vdm->absoluteWidth, dw);
- }
- else {
- vdm->absoluteHeight = vdm->height * vdm->resources->scale;
- vdm->absoluteWidth = vdm->width * vdm->resources->scale;
- ! vdm->rows = CEIL(vdm->absoluteHeight, dh);
- ! vdm->columns = CEIL(vdm->absoluteWidth, dw);
- }
- doit = False;
- deltas.delta_x = deltas.delta_y = 0;
- ***************
- *** 1643,1651 ****
- screen--;
- dw = DisplayWidth(dpy, client->screen);
- dh = DisplayHeight(dpy, client->screen);
- ! VDMMoveTo(dpy, client, dw * (screen % client->scrInfo->vdm->rows) +
- client->scrInfo->vdm->offsetX,
- ! dh * (screen / client->scrInfo->vdm->rows) +
- client->scrInfo->vdm->offsetY);
- }
-
- --- 1647,1655 ----
- screen--;
- dw = DisplayWidth(dpy, client->screen);
- dh = DisplayHeight(dpy, client->screen);
- ! VDMMoveTo(dpy, client, dw * (screen % client->scrInfo->vdm->columns) +
- client->scrInfo->vdm->offsetX,
- ! dh * (screen / client->scrInfo->vdm->columns) +
- client->scrInfo->vdm->offsetY);
- }
-
- *** BUILD/winframe.c Fri Jan 3 18:51:00 1992
- --- src/winframe.c Mon Jan 27 19:35:16 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)winframe.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)winframe.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 1532,1539 ****
- attributes.cursor = GRV.TargetPointer;
- attributes.border_pixel = 0;
- attributes.colormap = cli->scrInfo->colormap;
- ! valuemask = CWEventMask | CWSaveUnder | CWBackPixmap | CWCursor |
- ! CWBorderPixel | CWColormap;
-
- win = XCreateWindow(dpy, cli->scrInfo->rootid,
- 0, 0, 1, 1,
- --- 1532,1542 ----
- attributes.cursor = GRV.TargetPointer;
- attributes.border_pixel = 0;
- attributes.colormap = cli->scrInfo->colormap;
- ! if (GRV.PointerWorkspace)
- ! valuemask = CWEventMask | CWSaveUnder | CWBackPixmap |
- ! CWBorderPixel | CWColormap;
- ! else valuemask = CWEventMask | CWSaveUnder | CWBackPixmap | CWCursor |
- ! CWBorderPixel | CWColormap;
-
- win = XCreateWindow(dpy, cli->scrInfo->rootid,
- 0, 0, 1, 1,
- *** BUILD/winipane.c Fri Jan 3 18:51:01 1992
- --- src/winipane.c Mon Jan 27 19:35:16 1992
- ***************
- *** 4,10 ****
- * file for terms of the license.
- */
-
- ! #ident "@(#)winipane.c 1.1 olvwm version 1/3/92"
-
- /*
- * Based on
- --- 4,10 ----
- * file for terms of the license.
- */
-
- ! #ident "@(#)winipane.c 1.2 olvwm version 1/27/92"
-
- /*
- * Based on
- ***************
- *** 372,378 ****
- &(w->core.width), &(w->core.height),
- &borderWidth, &depthReturn);
-
- ! if (status && depthReturn <= 1) {
- /* build icon pixmap window */
- xswa.border_pixel = 0;
- xswa.colormap = cli->scrInfo->colormap;
- --- 372,378 ----
- &(w->core.width), &(w->core.height),
- &borderWidth, &depthReturn);
-
- ! if (status && depthReturn > 0) {
- /* build icon pixmap window */
- xswa.border_pixel = 0;
- xswa.colormap = cli->scrInfo->colormap;
-
- --
- --
- Molecular Simulations, Inc. mail: dcmartin@msi.com
- 796 N. Pastoria Avenue uucp: uunet!dcmartin
- Sunnyvale, California 94086 at&t: 408/522-9236
-